package com.wei.czz.framework.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wei.czz.common.enums.index.validateCode.ValidateCodeTypeEnum;
import com.wei.czz.framework.common.entity.ValidateCodeEntity;

import java.util.Date;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2022-04-27 11:26:00
 * className: ValidateCodeService 验证码服务接口
 * version: 1.0
 * description:
 */
public interface ValidateCodeService extends IService<ValidateCodeEntity> {

    /**
     * 保存验证码操作
     * @param validateCode 验证码对象
     */
    void saveOrEdit(ValidateCodeEntity validateCode);

    /**
     * 获取验证码操作
     * @param id 主键
     * @return 验证码对象
     */
    ValidateCodeEntity get(Long id);

    /**
     * 获取账户最后一条验证码的创建时间
     * @param account      账户
     * @param validateType 验证类型
     * @return 日期对象
     */
    Date getLastCreateTime(String account, Integer validateType);

    /**
     * 校验验证码操作
     * @param account   账号
     * @param requestIp 请求ip
     * @param type      验证类型
     * @param code      验证码
     */
    void checkValidateCode(String account, String requestIp, ValidateCodeTypeEnum type, String code);

}

